#!/usr/bin/env python

AUTH_BUILTIN_SRC = 'auth_builtin.c'
AUTH_DOMAIN_SRC = 'auth_domain.c'
AUTH_SAM_SRC = 'auth_sam.c'
AUTH_UNIX_SRC = 'auth_unix.c'
AUTH_WINBIND_SRC = 'auth_winbind.c'
AUTH_WBC_SRC = 'auth_wbc.c'
AUTH_SCRIPT_SRC = 'auth_script.c'

AUTH_SRC = '''auth.c
           user_krb5.c
           auth_ntlmssp.c auth_generic.c'''

bld.SAMBA3_SUBSYSTEM('TOKEN_UTIL',
                    source='token_util.c',
                    deps='samba-util pdb',
                    vars=locals())

bld.SAMBA3_SUBSYSTEM('USER_UTIL',
                     source='user_util.c',
                     deps='TOKEN_UTIL')

bld.SAMBA3_SUBSYSTEM('AUTH_COMMON',
                    source='''auth_util.c
			      check_samsec.c
			      server_info.c
			      server_info_sam.c
			      user_info.c''',
                     deps='TOKEN_UTIL DCUTIL USER_UTIL',
                    vars=locals())

bld.SAMBA3_LIBRARY('auth',
                    source=AUTH_SRC,
                   deps='''PLAINTEXT_AUTH SLCACHE DCUTIL TOKEN_UTIL AUTH_COMMON libcli_netlogon3 samba-hostconfig''',
                   private_library=True)

bld.SAMBA3_MODULE('auth_sam',
                 subsystem='auth',
                 source=AUTH_SAM_SRC,
                 deps='samba-util',
                 init_function='',
                 internal_module=True)

bld.SAMBA3_MODULE('auth_unix',
                 subsystem='auth',
                 source=AUTH_UNIX_SRC,
                 deps='samba-util',
                 init_function='',
                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_unix'),
                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_unix'))

bld.SAMBA3_MODULE('auth_winbind',
                 subsystem='auth',
                 source=AUTH_WINBIND_SRC,
                 deps='samba-util',
                 init_function='',
                 internal_module=True)

bld.SAMBA3_MODULE('auth_wbc',
                 subsystem='auth',
                 source=AUTH_WBC_SRC,
                 deps='samba-util',
                 init_function='',
                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_wbc'),
                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_wbc'))

bld.SAMBA3_MODULE('auth_domain',
                 subsystem='auth',
                 source=AUTH_DOMAIN_SRC,
                 deps='RPC_CLIENT_SCHANNEL trusts_util',
                 init_function='',
                 internal_module=True)

bld.SAMBA3_MODULE('auth_builtin',
                 subsystem='auth',
                 source=AUTH_BUILTIN_SRC,
                 deps='samba-util',
                 init_function='',
                 internal_module=True)

bld.SAMBA3_MODULE('auth_script',
                 subsystem='auth',
                 source=AUTH_SCRIPT_SRC,
                 init_function='',
                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_script'),
                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_script'))

bld.SAMBA3_MODULE('auth_samba4',
                  subsystem='auth',
                  source='auth_samba4.c',
                  init_function='',
                  deps='auth4 samba_server_gensec gensec',
                  internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_samba4') and bld.AD_DC_BUILD_IS_ENABLED(),
                  enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_samba4') and bld.AD_DC_BUILD_IS_ENABLED())
